Data Source

Source: Low-Income Energy Affordability Data, 2018 Update

About the Data

Variable Descriptions

glimpse(lead)
## Rows: 50
## Columns: 37
## $ FIP                      <dbl> 51003010100, 51003010201, 51003010202, 510030…
## $ county                   <chr> "Albemarle", "Albemarle", "Albemarle", "Albem…
## $ tract                    <dbl> 101.00, 102.01, 102.02, 103.00, 104.01, 104.0…
## $ totalinc                 <dbl> 258861238.7, 183602936.6, 192243103.3, 329144…
## $ totalelep                <dbl> 4257203.1, 3461893.8, 2766898.1, 5307149.1, 4…
## $ totalgas                 <dbl> 1048712.27, 587780.45, 698082.82, 895763.99, …
## $ totalother               <dbl> 5.733480e+05, 1.800686e+05, 2.793150e+05, 1.2…
## $ averageburden            <dbl> 2.271203, 2.303745, 1.947688, 1.923259, 2.919…
## $ avg_hh_exp               <dbl> 2393.537, 2451.253, 2585.068, 1715.611, 2999.…
## $ lowburden                <dbl> 1750.933158, 1504.638587, 1008.541509, 2810.7…
## $ highburden               <dbl> 190.17722, 133.26387, 76.66867, 147.13759, 29…
## $ veryhighburden           <dbl> 115.88093, 71.29768, 41.89234, 115.82400, 114…
## $ extremelyhighburden      <dbl> 55.616929, 25.143459, 71.777109, 110.487515, …
## $ totalunits               <dbl> 2112.60824, 1734.34359, 1198.87963, 3184.1515…
## $ numberburdened           <dbl> 361.67508, 229.70501, 190.33812, 373.44911, 4…
## $ percentburdened          <dbl> 17.119837, 13.244492, 15.876333, 11.728371, 2…
## $ total_0_30               <dbl> 155.60536, 95.61704, 99.49979, 246.48409, 106…
## $ total_30_60              <dbl> 276.2379, 177.3530, 81.6247, 395.1852, 288.12…
## $ total_60_80              <dbl> 202.76487, 248.88764, 57.15861, 424.89037, 19…
## $ total_80_100             <dbl> 207.11334, 233.06722, 77.81864, 352.95913, 15…
## $ total_over_100           <dbl> 1270.886801, 979.418685, 882.777886, 1764.632…
## $ burdened_0_30            <dbl> 128.62143, 93.05765, 94.56048, 237.15181, 104…
## $ burdened_30_60           <dbl> 183.41409, 104.48448, 77.91363, 132.27262, 27…
## $ burdened_60_80           <dbl> 31.7477293, 18.8320286, 5.3202464, 3.7823126,…
## $ burdened_80_100          <dbl> 17.89061934, 6.85006999, 12.54376158, 0.24236…
## $ burdened_over_100        <dbl> 0.001213645, 6.480778923, 0.000000000, 0.0000…
## $ percent_0_30             <dbl> 82.65874, 97.32330, 95.03586, 96.21384, 98.49…
## $ percent_30_60            <dbl> 66.39716, 58.91328, 95.45349, 33.47104, 95.15…
## $ percent_60_80            <dbl> 15.6574113, 7.5664781, 9.3078657, 0.8901855, …
## $ percent_80_100           <dbl> 8.63808158, 2.93909629, 16.11922526, 0.068665…
## $ percent_over_100         <dbl> 9.549591e-05, 6.616965e-01, 0.000000e+00, 0.0…
## $ total_owners             <dbl> 1717.57391, 1530.84877, 1121.92886, 2112.4528…
## $ total_renters            <dbl> 398.26352, 204.56073, 78.02610, 1090.28822, 3…
## $ burdened_owners          <dbl> 259.6989959, 204.2634172, 160.9956155, 164.01…
## $ burdened_renters         <dbl> 101.97609, 25.44159, 29.34250, 209.43103, 169…
## $ percent_burdened_owners  <dbl> 15.1201060, 13.3431480, 14.3498952, 7.7643427…
## $ percent_burdened_renters <dbl> 25.605179, 12.437181, 37.606009, 19.208777, 4…

Observations are census tract estimates of:

  • Total income (totalinc)
  • Total expenditures on electricity, gas, and other energy sources (totalelep, totalgas, totalother)
  • Average energy burden (averageburden)
    • Energy burden is defined in this data as the percentage of household income spent on energy.
  • Average yearly household energy expenditure (avg_hh_exp)
  • Number of households that fall in each energy burden category:
    • Low: less than 6% energy burden (lowburden)
    • High: 6-10% energy burden (highburden)
    • Very high: 10-20% energy burden (veryhighburden)
    • Extremely high: 20% energy burden or higher (extremelyhighburden)
  • Total number of housing units (totalunits)
  • Total number of energy-burdened households (numberburdened)
    • An energy-burdened household is one which falls in the high, very high, or extremely high categories
  • Percent of households that are energy-burdened (percentburdened)
  • Total number of households in each Area Median Income (AMI) category:
    • 0-30%: household income is between 0 and 30% of AMI (total_0_30)
    • 30-60%: household income is between 30 and 60% of AMI (total_30_60)
    • 60-80%: household income is between 60 and 80% of AMI (total_60_80)
    • 80-100%: household income is between 80 and 100% of AMI (total_80_100)
    • 100%+: household income is 100% of AMI or greater (total_over_100)
  • Number of households in each AMI group that are energy burdened (burdened_0_30, burdened_30_60, burdened_60_80, burdened_80_100, burdened_over_100)
  • Percent of households in each AMI group that are energy burdened (percent_0_30, percent_30_60, percent_60_80, percent_80_100, percent_over_100)
  • Total number of households that are owned (total_owners)
  • Total number of households that are rented (total_renters)
  • Number of owned households that are energy burdened (burdened_owners)
  • Number of rented households that are energy burdened (burdened_renters)
  • Percent of owned households that are energy burdened (percent_burdened_owners)
  • Percent of rented households that are energy burdened (percent_burdened_renters)

Summaries

Summary of all non-missing variables:

lead %>% select(-c(FIP:tract)) %>% 
  select(where(~is.numeric(.x) && !is.na(.x))) %>% 
  as.data.frame() %>% 
  stargazer(., type = "text", title = "Summary Statistics", digits = 0,
            summary.stat = c("mean", "sd", "min", "median", "max"))
## 
## Summary Statistics
## ===============================================================================
## Statistic                   Mean      St. Dev.    Min     Median        Max    
## -------------------------------------------------------------------------------
## totalinc                 177,919,174 90,029,492 662,819 173,393,476 405,427,996
## totalelep                 3,736,593  2,046,840  130,692  3,420,559   8,786,365 
## totalgas                   836,745    520,782      0      781,223    2,471,311 
## totalother                 184,122    142,104      0      171,001     573,348  
## averageburden                 3          3         2         3          20     
## avg_hh_exp                  2,379       590      1,623     2,281       4,011   
## lowburden                   1,369       669        1       1,212       3,208   
## highburden                   221        147        0        187         650    
## veryhighburden               142         95        0        126         443    
## extremelyhighburden          112         99        3        85          464    
## totalunits                  1,844       789       85       1,752       3,975   
## numberburdened               475        274       62        421        1,223   
## percentburdened              28          16        6        25          98     
## total_0_30                   228        131       39        225         666    
## total_30_60                  294        138        0        277         585    
## total_60_80                  199        107        0        191         488    
## total_80_100                 187        105        0        183         535    
## total_over_100               936        489        1        888        2,195   
## burdened_0_30                217        128       38        216         647    
## burdened_30_60               187        133        0        137         548    
## burdened_60_80               48          61        0        27          287    
## burdened_80_100              21          35        0        11          185    
## burdened_over_100             1          3         0         0          12     
## percent_0_30                 95          5        81        96          100    
## percent_30_60                62          28       19        64          98     
## percent_60_80                24          25        0        13          89     
## percent_80_100               10          13        0         7          62     
## percent_over_100              0          0         0         0           1     
## total_owners                1,248       770       17       1,186       3,459   
## total_renters                624        401       68        555        1,667   
## burdened_owners              273        231        0        193         892    
## burdened_renters             202        143       21        190         681    
## percent_burdened_owners      21          16        0        18          100    
## percent_burdened_renters     37          20        7        35          98     
## -------------------------------------------------------------------------------

Visual Distributions

Visual distributions of the data, shown with histograms and scatterplots

Spatial Distributions

Maps to show the distribution of variables across spatial units

Average Energy Burden

pal <- colorNumeric("plasma", reverse = TRUE, domain = cvlshapes$averageburden)
leaflet(cvlshapes) %>%
  addProviderTiles("CartoDB.Positron") %>%
  addPolygons(data = cvlshapes,
              fillColor = ~pal(averageburden),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("Tract Number: ", cvlshapes$tract, "<br>",
                             "Avg. Burden: ", round(cvlshapes$averageburden, 2))) %>%
  addLegend("bottomright", pal = pal, values = cvlshapes$averageburden,
            title = "Average Energy Burden", opacity = 0.7)

Average Yearly Household Energy Expenditures

pal <- colorNumeric("plasma", reverse = TRUE, domain = cvlshapes$avg_hh_exp)
leaflet(cvlshapes) %>%
  addProviderTiles("CartoDB.Positron") %>%
  addPolygons(data = cvlshapes,
              fillColor = ~pal(avg_hh_exp),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("Tract Number: ", cvlshapes$tract, "<br>",
                             "Avg. Household Energy Expenditures: ", round(cvlshapes$avg_hh_exp, 2))) %>%
  addLegend("bottomright", pal = pal, values = cvlshapes$avg_hh_exp,
            title = "Average Yearly Household Energy Expenditures", opacity = 0.7)

Number of Energy Burdened Households

pal <- colorNumeric("plasma", reverse = TRUE, domain = cvlshapes$numberburdened)
leaflet(cvlshapes) %>%
  addProviderTiles("CartoDB.Positron") %>%
  addPolygons(data = cvlshapes,
              fillColor = ~pal(numberburdened),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("Tract Number: ", cvlshapes$tract, "<br>",
                             "Number Burdened: ", round(cvlshapes$numberburdened, 2))) %>%
  addLegend("bottomright", pal = pal, values = cvlshapes$numberburdened,
            title = "Number of Energy Burdened Households", opacity = 0.7)

Percent of Energy Burdened Households

pal <- colorNumeric("plasma", reverse = TRUE, domain = cvlshapes$percentburdened)
leaflet(cvlshapes) %>%
  addProviderTiles("CartoDB.Positron") %>%
  addPolygons(data = cvlshapes,
              fillColor = ~pal(percentburdened),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("Tract Number: ", cvlshapes$tract, "<br>",
                             "Pct. Burdened: ", round(cvlshapes$percentburdened, 2), "<br>",
                             "Pct. Burdened - 0-30% AMI: ", round(cvlshapes$percent_0_30, 2), "<br>",
                             "Pct. Burdened - 30-60% AMI: ", round(cvlshapes$percent_30_60, 2), "<br>",
                             "Pct. Burdened - 60-80% AMI: ", round(cvlshapes$percent_60_80, 2), "<br>",
                             "Pct. Burdened - 80-100% AMI: ", round(cvlshapes$percent_80_100, 2), "<br>",
                             "Pct. Burdened - 100%+ AMI: ", round(cvlshapes$percent_over_100, 2))) %>%
  addLegend("bottomright", pal = pal, values = cvlshapes$percentburdened,
            title = "Percent of Energy Burdened Households", opacity = 0.7)

Percent of Energy Burdened Rented Households

pal <- colorNumeric("plasma", reverse = TRUE, domain = cvlshapes$percent_burdened_renters)
leaflet(cvlshapes) %>%
  addProviderTiles("CartoDB.Positron") %>%
  addPolygons(data = cvlshapes,
              fillColor = ~pal(percent_burdened_renters),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("Tract Number: ", cvlshapes$tract, "<br>",
                             "Pct. of Renters Burdened: ", round(cvlshapes$percent_burdened_renters, 2))) %>%
  addLegend("bottomright", pal = pal, values = cvlshapes$percent_burdened_renters,
            title = "Percent of Energy Burdened Rented Households", opacity = 0.7)

Percent of Energy Burdened Owned Households

pal <- colorNumeric("plasma", reverse = TRUE, domain = cvlshapes$percent_burdened_owners)
leaflet(cvlshapes) %>%
  addProviderTiles("CartoDB.Positron") %>%
  addPolygons(data = cvlshapes,
              fillColor = ~pal(percent_burdened_owners),
              weight = 1,
              opacity = 1,
              color = "white",
              fillOpacity = 0.6,
              highlight = highlightOptions(weight = 2, fillOpacity = 0.8, bringToFront = T),
              popup = paste0("Tract Number: ", cvlshapes$tract, "<br>",
                             "Pct. of Owners Burdened: ", round(cvlshapes$percent_burdened_owners, 2))) %>%
  addLegend("bottomright", pal = pal, values = cvlshapes$percent_burdened_owners,
            title = "Percent of Energy Burdened Owned Households", opacity = 0.7)

Important Notes

Several census tracts in Charlottesville and Albemarle County are primarily composed of UVA students, which makes energy burden difficult to calculate for these areas. Students typically spend a large portion of their “income” on energy, because they typically do not make a lot of money and get most of their money from other sources.

Census tracts 109.01, 109.02, and 109.03 in Albemarle County encompass the university. Charlottesville census tracts 2.01, 2.02, and 6, while not officially university property, house primarily students.

These student-dominated census tracts look like outliers on many of the variables of interest - tract 109.03 especially stands out - but they do not capture the whole picture.